package visao;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import modelo.Equipe;
import modelo.Usuario;
import controle.ControleUsuario;

@ManagedBean(name = "usuarioBean")
@RequestScoped
public class UsuarioBean {

	private Usuario usuario = new Usuario();
	private Usuario usuarioSelecionado = new Usuario();
	private String confirmarSenha;
	private ControleUsuario controle;
	private long id;
	private List<Usuario> usuarios = new ArrayList<Usuario>();

	public UsuarioBean() {
		controle = new ControleUsuario();
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public String novo() {
		usuario = new Usuario();
		confirmarSenha = "";
		return "/restrito/cadastroUsuario";
	}
	



	public String salvar() {
		FacesContext context = FacesContext.getCurrentInstance();
		/*
		 * if (!usuario.getSenha().equals(confirmarSenha)) {
		 * facesContext.addMessage(null, new
		 * FacesMessage(FacesMessage.SEVERITY_ERROR, "Senhas n�o conferem!",
		 * "")); return ""; }
		 */
		try {
			controle.criptografa(usuario.getSenha());
		} catch (Exception e) {
			e.printStackTrace();
			context.addMessage(null, new FacesMessage(
					FacesMessage.SEVERITY_ERROR, e.getMessage(), ""));
		}
		
		try {
			controle.salvar(usuario);
			context.addMessage(null, new FacesMessage(
					FacesMessage.SEVERITY_INFO,
					"Jogador Cadastrado com Sucesso!", ""));
			usuario = new Usuario();
		} catch (Exception e) {
			e.printStackTrace();
			context.addMessage(null, new FacesMessage(
					FacesMessage.SEVERITY_ERROR, e.getMessage(), ""));
		}
		return "";
	}

	public String getConfirmarSenha() {
		return confirmarSenha;
	}

	public void setConfirmarSenha(String confirmarSenha) {
		this.confirmarSenha = confirmarSenha;
	}

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public String listarTodos() {
		usuarios = controle.listarTodos();
		return "listarUsuario";
	}

	public List<Usuario> getUsuarios() {
		return usuarios;
	}

	public void setUsuarios(List<Usuario> usuarios) {
		this.usuarios = usuarios;
	}

	public String excluir() {
		controle.excluir(usuario);
		return null;
	}
	public String voltar() {
		usuario = new Usuario();
		return "/restrito/indexUsuario";
	}
	public String alterar() {
		
		this.usuario = this.usuarioSelecionado;
		return "/restrito/cadastroUsuario";
	}
}
